<?php
require_once 'PaiPaiRuntime.class.php';
/**
 * 配置runtime运行时，使用静态函数getRuntime得到sellerId对应的runtime运行时。
 */
class RuntimeConfig {
	/**
	 * @var array $conf 私有属性，用于存放sellerId和对应的runtime
	 */
	private  static  $conf=array();
	/**
	 * 得到sellerId对应runtime运行时
	 * @param string $sellerId 卖家id，默认值为空，返回第一个runtime。
	 * $sellerId使用默认值一般只用于只有一个卖家的情况.
	 * @return PaiPaiRuntime runtime 运行时
	 */
	static function getRuntime($sellerId=NULL){
	  if(! $sellerId && count(self::$conf)>0){
	  	reset(self::$conf);
	  	$rt=current(self::$conf);
		return  $rt;	
	  }
	  return  self::$conf[$sellerId];
	}
	
	
	//---------以下为配置runtime函数---------//
	/**
	 * 设置sellerId和对应的runtime
	 * @param string $sellerId 卖家id
	 * @param mixed $runtime 运行时
	 * @return bool 设置成功true,否则false
	 */
	static function setRuntime($sellerId,$runtime){
		if($sellerId && $runtime){
		   self::$conf[$sellerId]=$runtime;
		   return true;
		}
		return false;		
	}
	/**
	 * 设置uin和对应的拍拍runtime.
	 * @param string $uin 操作用户QQ号码，用于认证操作用户的身份
	 * @param string $token 用于认证操作用户的身份
	 * @param string $spid  用于验证请求包是否被篡改
	 * @param string $skey  用于用户鉴权
	 * @return bool 设置成功true,否则false
	 */
	static function setPaiPaiRuntime($uin,$token,$spid,$skey){
		if($uin && $token && $spid && $skey){
		   self::$conf[$uin]=new PaiPaiRuntime(array('uin'=>$uin,
		       'token'=>$token,'spid'=>$spid,'skey'=>$skey));
		   return true;
		}
		return false;
	}
	/**
	 * 设置uin和对应的拍拍runtime.
	 * @param array $arrayToken 拍拍令牌数组，必须包含以下参数：<br/>
	 * string $uin 操作用户QQ号码，用于认证操作用户的身份.<br/>
	 * string $token 用于认证操作用户的身份.<br/>
	 * string $spid 用于验证请求包是否被篡改.<br/>
	 * string $skey 用于用户鉴权.	
	 * @return bool 设置成功true,否则false
	 */
	static function setPaiPaiRuntimeByArray($arrayToken){
		if($arrayToken['uin'] && $arrayToken['token'] && 
		    $arrayToken['spid'] && $arrayToken['skey']){
		   self::$conf[$arrayToken['uin']]=new PaiPaiRuntime($arrayToken);
		   return true;
		}
		return false;
	}
	
}

